package com.baosight.risk.api.xtzy;

import java.util.List;

import com.baosight.risk.base.service.BaseService;
import com.baosight.risk.service.system.entity.SysRole;
import com.baosight.risk.service.xtzy.bo.XtzyRoleUserReplaceBO;
import com.baosight.risk.service.xtzy.entity.XtzyRoleUser;
import com.baosight.risk.service.xtzy.entity.XtzyUser;
import com.baosight.risk.service.xtzy.vo.XtzyCompUserVO;
import com.baosight.risk.service.xtzy.vo.XtzyCompanyVO;
import com.baosight.risk.service.xtzy.vo.XtzyUserVO;
import org.apache.ibatis.annotations.Param;

/**
 * 类 名: IXtzyRoleUserService
 * 描 述:
 * 作 者: 黎秋荣
 * 创 建：2019年05月22日
 * 版 本：v2.2.0
 * 历 史: (版本) 作者 时间 注释
 */
public interface IXtzyRoleUserService extends BaseService<XtzyRoleUser> {

    Integer saveUserRole(XtzyCompanyVO companyVO) throws Exception;

    List<XtzyUserVO> queryUserRole(String compId, String userDesc, String userCode);

    /**根据组织ID获取指定角色用户
     * @author 侯湘锦
     * @Date 2020/11/18 14:01
     * @description
     * @param compId
     * @return java.util.List<com.baosight.risk.service.xtzy.vo.XtzyUserVO>
     **/
    List<XtzyUserVO> queryAppointUserRole(String compId, String userDesc, String userCode);


    Integer saveCompUser(XtzyCompanyVO companyVO);

    Integer deleteCompUser(String id);

    /**
     * 根据组织获取指定用户所属角色
     *
     * @param compId 组织ID
     * @param userId 用户ID
     */
    List<SysRole> getUserRoles(String compId, String userId);

    /**
     * 根据组织获取指定用户所属角色
     *
     * @param compCodes 组织ID
     * @param userId    用户编码
     */
    public List<SysRole> getRolesByUserCode(List<String> compCodes, String userId);

    List<XtzyUser> getRoleByRoleIdAndCompId(String compId, String roleId);

    List<XtzyRoleUser> getRoleByCompId(String compId);

    List<XtzyRoleUser> selectByUserCode(XtzyRoleUser user);

    List<XtzyRoleUser> selectRoleUserList(String compId,String roleKey);

    List<XtzyCompUserVO> selectCompUserList(String compCode,String userCode);
    
    /**
     * 替换
     * @param replaceBO
     * @return
     * @throws Exception
     */
    void replace(XtzyRoleUserReplaceBO replaceBO) throws Exception;

}
